/**
 * 签到/签退
 */

var mongoose = require('mongoose');

var Signin = mongoose.model('Signin');

// 用户签到
exports.signin = function (req, res) {

    var unique_id = req.body.unique_id; // 唯一ID（用户名+日期）如：test20180301
    var user_name = req.body.user_name; // 用户名
    var type = req.body.type; // 签到标志位
    var date = req.body.date; // 签到日期时间

    // 先判断是否已经签到
    Signin.findOne({
        unique_id: unique_id
    }, function (err, docs) {
        if (err) {
            res.json({
                "status": "error",
                "msg": "error_system"
            });
        }
        // 无签到记录
        else if (docs == null) {
            var newSignin = new Signin();
            newSignin.unique_id = unique_id;
            newSignin.user_name = user_name;
            // 上午签到
            if (type == "am_signin") {

                newSignin.am_signin = date;
                newSignin.am_signout = "0";
                newSignin.pm_signin = "0";
                newSignin.pm_signout = "0";
                newSignin.night_signin = "0";
                newSignin.night_signout = "0";
                // 入库
                newSignin.save(function (err) {
                    if (err) {
                        res.json({
                            "status": "error",
                            "msg": "error_system"
                        })
                    } else {
                        res.json({
                            "status": "success",
                            "msg": ""
                        });
                    }
                });
            }
            // 上午签退
            else if (type == "am_signout") {

                newSignin.am_signin = "0";
                newSignin.am_signout = date;
                newSignin.pm_signin = "0";
                newSignin.pm_signout = "0";
                newSignin.night_signin = "0";
                newSignin.night_signout = "0";
                // 入库
                newSignin.save(function (err) {
                    if (err) {
                        res.json({
                            "status": "error",
                            "msg": "error_system"
                        })
                    } else {
                        res.json({
                            "status": "success",
                            "msg": ""
                        });
                    }
                });

            }
            // 下午签到
            else if (type == "pm_signin") {

                newSignin.am_signin = "0";
                newSignin.am_signout = "0";
                newSignin.pm_signin = date;
                newSignin.pm_signout = "0";
                newSignin.night_signin = "0";
                newSignin.night_signout = "0";
                // 入库
                newSignin.save(function (err) {
                    if (err) {
                        res.json({
                            "status": "error",
                            "msg": "error_system"
                        })
                    } else {
                        res.json({
                            "status": "success",
                            "msg": ""
                        });
                    }
                });

            }
            // 下午签退
            else if (type == "pm_signout") {

                newSignin.am_signin = "0";
                newSignin.am_signout = "0";
                newSignin.pm_signin = "0";
                newSignin.pm_signout = date;
                newSignin.night_signin = "0";
                newSignin.night_signout = "0";
                // 入库
                newSignin.save(function (err) {
                    if (err) {
                        res.json({
                            "status": "error",
                            "msg": "error_system"
                        })
                    } else {
                        res.json({
                            "status": "success",
                            "msg": ""
                        });
                    }
                });

            }
            // 晚上签到
            else if (type == "night_signin") {

                newSignin.am_signin = "0";
                newSignin.am_signout = "0";
                newSignin.pm_signin = "0";
                newSignin.pm_signout = "0";
                newSignin.night_signin = date;
                newSignin.night_signout = "0";
                // 入库
                newSignin.save(function (err) {
                    if (err) {
                        res.json({
                            "status": "error",
                            "msg": "error_system"
                        })
                    } else {
                        res.json({
                            "status": "success",
                            "msg": ""
                        });
                    }
                });

            }
            // 晚上签退
            else if (type == "night_signout") {

                newSignin.am_signin = "0";
                newSignin.am_signout = "0";
                newSignin.pm_signin = "0";
                newSignin.pm_signout = "0";
                newSignin.night_signin = "0";
                newSignin.night_signout = date;
                // 入库
                newSignin.save(function (err) {
                    if (err) {
                        res.json({
                            "status": "error",
                            "msg": "error_system"
                        })
                    } else {
                        res.json({
                            "status": "success",
                            "msg": ""
                        });
                    }
                });
            }

        }
        // 有签到记录
        else {
            // 上午签到
            if (type == "am_signin") {

                if (docs.am_signin == "0") {
                    docs.am_signin = date;
                    docs.save(function (err) {
                        if (err) {
                            res.json({
                                "status": "error",
                                "msg": "error_system"
                            })
                        } else {
                            res.json({
                                "status": "success",
                                "msg": ""
                            });
                        }
                    });
                } else {
                    res.json({
                        "status": "error",
                        "msg": "already_signin"
                    });
                }

            }
            // 上午签退
            else if (type == "am_signout") {

                if (docs.am_signout == "0") {
                    docs.am_signout = date;
                    docs.save(function (err) {
                        if (err) {
                            res.json({
                                "status": "error",
                                "msg": "error_system"
                            })
                        } else {
                            res.json({
                                "status": "success",
                                "msg": ""
                            });
                        }
                    });
                } else {
                    res.json({
                        "status": "error",
                        "msg": "already_signin"
                    });
                }
            }
            // 下午签到
            else if (type == "pm_signin") {
                if (docs.pm_signin == "0") {
                    docs.pm_signin = date;
                    docs.save(function (err) {
                        if (err) {
                            res.json({
                                "status": "error",
                                "msg": "error_system"
                            })
                        } else {
                            res.json({
                                "status": "success",
                                "msg": ""
                            });
                        }
                    });
                } else {
                    res.json({
                        "status": "error",
                        "msg": "already_signin"
                    });
                }

            }
            // 下午签退
            else if (type == "pm_signout") {
                if (docs.pm_signout == "0") {
                    docs.pm_signout = date;
                    docs.save(function (err) {
                        if (err) {
                            res.json({
                                "status": "error",
                                "msg": "error_system"
                            })
                        } else {
                            res.json({
                                "status": "success",
                                "msg": ""
                            });
                        }
                    });
                } else {
                    res.json({
                        "status": "error",
                        "msg": "already_signin"
                    });
                }

            }
            // 晚上签到
            else if (type == "night_signin") {
                if (docs.night_signin == "0") {
                    docs.night_signin = date;
                    docs.save(function (err) {
                        if (err) {
                            res.json({
                                "status": "error",
                                "msg": "error_system"
                            })
                        } else {
                            res.json({
                                "status": "success",
                                "msg": ""
                            });
                        }
                    });
                } else {
                    res.json({
                        "status": "error",
                        "msg": "already_signin"
                    });
                }


            }
            // 晚上签退
            else if (type == "night_signout") {
                if (docs.night_signout == "0") {
                    docs.night_signout = date;
                    docs.save(function (err) {
                        if (err) {
                            res.json({
                                "status": "error",
                                "msg": "error_system"
                            })
                        } else {
                            res.json({
                                "status": "success",
                                "msg": ""
                            });
                        }
                    });
                } else {
                    res.json({
                        "status": "error",
                        "msg": "already_signin"
                    });
                }

            }
        }
    })


}

// 获取签到记录（分页加载）
exports.getSignins = function (req, res) {

    var user_name = req.body.user_name; // 用户名
    var page_num = req.body.page_num;   // 页码（从1开始，每页5条）

    Signin.find({
        user_name: user_name
    }).sort({
        '_id': -1
    }).limit(5).skip((page_num - 1) * 5).exec(function (err, doc) {
        if (err) {
            res.json({
                "status": "error",
                "msg": "error_system"
            });
        } else {
            if (doc.isNull) {
                res.json({
                    "status": "success",
                    "msg": "data_empty"
                });
            }
            res.json({
                "status": "success",
                "msg": doc
            });
            console.log('---签到记录---');
            console.log(doc.toString());
        }
    })

}